An application server is a software program that runs on a server computer in a computer network for running software applications. Typically, application server software is installed, configured and run by a single trusted user, usually a system administrator or other expert user. For example, a web developer might set up and maintain an application server for applications running on a proprietary website. The problem with existing application servers is they are difficult to set up and configure and are not generally designed for a user without technical expertise. For example, if a typical grandmother wanted to create an application (e.g., to track her family genealogy) and make it available on the web for other family members to view and modify, it would be difficult for her to do so using a standard application server. In addition, the grandmother would have to handle writing and maintaining the code for all features of the application, and set up and maintain her own security model (e.g., for user authentication). It would be desirable to have a way to allow any type of user to develop any type of application. Also, given the growing market for social applications, a solution that facilitates the development of social applications would be particularly useful.